package lemar.entidad;
// Generated 09-09-2013 10:52:54 PM by Hibernate Tools 3.2.1.GA


import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Producto generated by hbm2java
 */
@Entity
@Table(name="producto"
    ,catalog="lemar"
)
public class Producto  implements java.io.Serializable {


     private String idProducto;
     private Mascota mascota;
     private AreaProducto areaProducto;
     private DetalleVenta detalleVenta;
     private Estante estante;
     private Articulo articulo;
     private Inventario inventario;
     private String codigo;
     private float precio;
     private String descripcion;
     private Set<Mascota> mascotas = new HashSet<Mascota>(0);
     private Set<Articulo> articulos = new HashSet<Articulo>(0);
     private Set<Proveedor> proveedors = new HashSet<Proveedor>(0);

    public Producto() {
    }

	
    public Producto(String idProducto, Mascota mascota, AreaProducto areaProducto, DetalleVenta detalleVenta, Estante estante, Articulo articulo, Inventario inventario, String codigo, float precio, String descripcion) {
        this.idProducto = idProducto;
        this.mascota = mascota;
        this.areaProducto = areaProducto;
        this.detalleVenta = detalleVenta;
        this.estante = estante;
        this.articulo = articulo;
        this.inventario = inventario;
        this.codigo = codigo;
        this.precio = precio;
        this.descripcion = descripcion;
    }
    public Producto(String idProducto, Mascota mascota, AreaProducto areaProducto, DetalleVenta detalleVenta, Estante estante, Articulo articulo, Inventario inventario, String codigo, float precio, String descripcion, Set<Mascota> mascotas, Set<Articulo> articulos, Set<Proveedor> proveedors) {
       this.idProducto = idProducto;
       this.mascota = mascota;
       this.areaProducto = areaProducto;
       this.detalleVenta = detalleVenta;
       this.estante = estante;
       this.articulo = articulo;
       this.inventario = inventario;
       this.codigo = codigo;
       this.precio = precio;
       this.descripcion = descripcion;
       this.mascotas = mascotas;
       this.articulos = articulos;
       this.proveedors = proveedors;
    }
   
     @Id 
    
    @Column(name="ID_PRODUCTO", unique=true, nullable=false, length=50)
    public String getIdProducto() {
        return this.idProducto;
    }
    
    public void setIdProducto(String idProducto) {
        this.idProducto = idProducto;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_MASCOTA", nullable=false)
    public Mascota getMascota() {
        return this.mascota;
    }
    
    public void setMascota(Mascota mascota) {
        this.mascota = mascota;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_AREA_PRODUCTO", nullable=false)
    public AreaProducto getAreaProducto() {
        return this.areaProducto;
    }
    
    public void setAreaProducto(AreaProducto areaProducto) {
        this.areaProducto = areaProducto;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_DETALLE_VENTA", nullable=false)
    public DetalleVenta getDetalleVenta() {
        return this.detalleVenta;
    }
    
    public void setDetalleVenta(DetalleVenta detalleVenta) {
        this.detalleVenta = detalleVenta;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_ESTANTE", nullable=false)
    public Estante getEstante() {
        return this.estante;
    }
    
    public void setEstante(Estante estante) {
        this.estante = estante;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_ARTICULO", nullable=false)
    public Articulo getArticulo() {
        return this.articulo;
    }
    
    public void setArticulo(Articulo articulo) {
        this.articulo = articulo;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_INVENTARIO", nullable=false)
    public Inventario getInventario() {
        return this.inventario;
    }
    
    public void setInventario(Inventario inventario) {
        this.inventario = inventario;
    }
    
    @Column(name="CODIGO", nullable=false, length=50)
    public String getCodigo() {
        return this.codigo;
    }
    
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
    
    @Column(name="PRECIO", nullable=false, precision=8)
    public float getPrecio() {
        return this.precio;
    }
    
    public void setPrecio(float precio) {
        this.precio = precio;
    }
    
    @Column(name="DESCRIPCION", nullable=false, length=256)
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="producto")
    public Set<Mascota> getMascotas() {
        return this.mascotas;
    }
    
    public void setMascotas(Set<Mascota> mascotas) {
        this.mascotas = mascotas;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="producto")
    public Set<Articulo> getArticulos() {
        return this.articulos;
    }
    
    public void setArticulos(Set<Articulo> articulos) {
        this.articulos = articulos;
    }
@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="productos")
    public Set<Proveedor> getProveedors() {
        return this.proveedors;
    }
    
    public void setProveedors(Set<Proveedor> proveedors) {
        this.proveedors = proveedors;
    }




}


